package com.yxinsur.imc.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yxinsur.imc.business.domain.ImcFundBrokerExpression;
import com.yxinsur.imc.business.domain.ImcFundOrderExpression;
import com.yxinsur.imc.business.form.FundOrderForm;
import com.yxinsur.imc.business.vo.FundOrderExpressionVo;
import com.yxinsur.imc.common.core.domain.AjaxResult;

import java.util.List;

/**
 * 保单口径（暨口径达式配置）Service接口
 *
 * @author imc
 * @date 2021-10-29
 */
public interface IImcFundOrderExpressionService extends IService<ImcFundOrderExpression> {
    /**
     * 查询保单口径（暨口径达式配置）
     *
     * @param id 保单口径（暨口径达式配置）ID
     * @return 保单口径（暨口径达式配置）
     */
    public ImcFundOrderExpression selectImcFundOrderExpressionById(String id);

    /**
     * 查询保单口径（暨口径达式配置）列表
     *
     * @param imcFundOrderExpression 保单口径（暨口径达式配置）
     * @return 保单口径（暨口径达式配置）集合
     */
    public List<ImcFundOrderExpression> selectImcFundOrderExpressionList(ImcFundOrderExpression imcFundOrderExpression);

    /**
     * 新增保单口径（暨口径达式配置）
     *
     * @param fundOrderForm 保单口径（暨口径达式配置）
     * @return 结果
     */
    public int insertImcFundOrderExpression(FundOrderForm fundOrderForm);

    /**
     * 修改保单口径（暨口径达式配置）
     *
     * @param fundOrderForm 保单口径（暨口径达式配置）
     * @return 结果
     */
    public int updateImcFundOrderExpression(FundOrderForm fundOrderForm);

    /**
     * 批量删除保单口径（暨口径达式配置）
     *
     * @param fundOrderForm 需要删除的保单口径（暨口径达式配置）ID
     * @return 结果
     */
    public int deleteImcFundOrderExpressionByIds(FundOrderForm fundOrderForm);

    /**
     * 删除保单口径（暨口径达式配置）信息
     *
     * @param id 保单口径（暨口径达式配置）ID
     * @return 结果
     */
    public int deleteImcFundOrderExpressionById(String id);

    /**
     * 根据基本法id获得相应的保单口径配置
     * @param fundId
     * @return
     */
    List<FundOrderExpressionVo> selectImcFundOrderExpressionByFundId(Long fundId,String policyYearFlag);


    /**
     * 生成校验口径表达式
     * @param fundOrderForm
     * @return
     */
    AjaxResult checkExpenseExpression(FundOrderForm fundOrderForm);
}
